转:Qt 之 QVector |
您所在的位置:网站首页 › qt 数组赋值 › 转:Qt 之 QVector |
QVector类是一个提供动态数组的模板类。 QVector是Qt普通容器类的一种。它将自己的每一个对象存储在连续的内存中,可以使用索引号来快速访问它们。QList、QLinkedList和 QVarLengthArray也提供了相似的功能,它们使用方法如下: l QList一般用得最多,它能满足我们绝大部分需求。像prepend()和insert()这样的操作通常比QVector要快些,这是由于QList存储它的对象的方式(Algorithmic Complexity)不同。还有它基于索引的API比QLinkedList的基于迭代器的API更方便使用。最后,执行程序时它的代码扩展量更少些。 l QLinkedList,当你需要使用一个真正的链表,要求在恒定的时间内将对象插入到列表的中间,你更想用迭代器而不是索引号来访问对象,这个时候就使用QLinkedList吧! l QVector,如果你想要在连续的内存上存储你的对象,你的对象比指针还要大,你想避免单独地把对象插入到堆的头部时,使用QVector。 l QVarLengthArray,如果你想要一个低层次的可变大小的容器,QVarLengthArray就足够了,它的优点是速度快! 下面是使用QVector存放整型值和QString的例子: 1 QVector integerVector; 2 QVector stringVector;QVector保存对象的向量容器,通常是使用初始大小来创建向量容器。举例,下面的代码构造了一个拥有200个元素的QVector: QVector vector(200); 1如果所创建的向量容器对象没有赋初值,就会被使用这个向量容器的类的默认构造函数进行初始化。基本类型和指针类型都会被初始化为0,如果想使用其它的初值来初始化对象时,可以在初始化时再添加一个参数: QVector vector(200,"Pass"); 1你也可以调用fill()函数在任何时候填充向量容器。 就像C++的数组一样,QVector的索引号也是从0开始的。使用索引号来访问对象时,可以这样operator if (vector[0] == "Liz") vector[0] ="Elizabeth"; 1 2如果只是读取向量容器的对象,可以调用at()函数来访问对象: for (int i = 0; i < vector.size(); ++i) { if (vector.at(i) =="Alfonso") cout |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |